#ifndef _SPICY_WINDOW_TIMED_REVEALER_H
#define _SPICY_WINDOW_TIMED_REVEALER_H

#include <glib-object.h>
#include <gtk/gtk.h>

#include "vcd-common-api/vcd-util.h"

#define SPICY_WINDOW_TYPE_TIMED_REVEALER spicy_window_timed_revealer_get_type()

#define SPICY_WINDOW_TIMED_REVEALER(obj) \
    (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPICY_WINDOW_TYPE_TIMED_REVEALER, SpicyWindowTimedRevealer))

#define SPICY_WINDOW_TIMED_REVEALER_CLASS(klass) \
    (G_TYPE_CHECK_CLASS_CAST ((klass), SPICY_WINDOW_TYPE_TIMED_REVEALER, SpicyWindowTimedRevealerClass))

#define SPICY_WINDOW_IS_TIMED_REVEALER(obj) \
    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPICY_WINDOW_TYPE_TIMED_REVEALER))

#define SPICY_WINDOW_IS_TIMED_REVEALER_CLASS(klass) \
    (G_TYPE_CHECK_CLASS_TYPE ((klass), SPICY_WINDOW_TYPE_TIMED_REVEALER))

#define SPICY_WINDOW_TIMED_REVEALER_GET_CLASS(obj) \
    (G_TYPE_INSTANCE_GET_CLASS ((obj), SPICY_WINDOW_TYPE_TIMED_REVEALER, SpicyWindowTimedRevealerClass))

typedef struct _SpicyWindowTimedRevealerPrivate SpicyWindowTimedRevealerPrivate;

typedef struct {
	GtkEventBox parent;
	SpicyWindowTimedRevealerPrivate *priv;
} SpicyWindowTimedRevealer;

typedef struct {
	GtkEventBoxClass parent_class;
} SpicyWindowTimedRevealerClass;

GType spicy_window_timed_revealer_get_type (void);

SpicyWindowTimedRevealer *
spicy_window_timed_revealer_new(GtkWidget *topbar,TopbarPostion position);

void
spicy_window_timed_revealer_force_reveal(SpicyWindowTimedRevealer *self,
        gboolean fullscreen);

char* vcd_revealer_get_img_full_path(const char* name);
GtkWidget* vcd_revealer_new_gtkimage(const char* path,int width,int height);

#endif
